package com.test.io.inputOutput;

import org.junit.Test;
import java.io.File;
import java.io.IOException;

/**
 * 文件对象练习
 */
public class FileDemo {
    public static void main(String[] args) {

    }

    //　创建文件的三种方式　
    //1 根据文件路径构建
    @Test
    public void createFile01() {
        String filePath = "d:\\newFile1.text";
        File file = new File(filePath);
        try {
            file.createNewFile();
            System.out.println("文件创建成功");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    // 根据父目录文件对象加子路径构建
    @Test
    public void createFile02() {
        String parentPath = "d:\\";
        String filePath = "newFile2.text";
        File parent = new File(parentPath);
        File newFile =  new File(parent, filePath);
        try {
            newFile.createNewFile();
            System.out.println("文件创建成功");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    // 根据父目录,子路径字符串构建
    @Test
    public void createFile03(){
        String parentPath = "D:\\";
        String filePath =  "newFile3.text";
        File file = new File(parentPath, filePath);
        try {
            file.createNewFile();
            System.out.println("文件创建成功");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    // 文件对象常用方法
    @Test
    public void useFullyMethod(){
        File file = new File("d:\\newFile1.text");
        System.out.println("文件名=== " + file.getName());
        System.out.println("文件绝对路径===" + file.getAbsolutePath());
        System.out.println("文件父级目录===" + file.getParent());
        System.out.println("文件大小(字节)===" + file.length());
        System.out.println("文件是否存在===" + file.exists());
        System.out.println("是否是一个文件===" + file.isFile());
        System.out.println("是否是一个目录===" + file.isDirectory());

    }

    // mkdir mkdirs delete
    // 1判断文件是否存在 存在则删除
    @Test
    public void delFile() {
        File file = new File("d:\\newFile1.text");
        if(file.exists()) {
            file.delete();
            System.out.println("文件删除成功");
        } else {
            System.out.println("文件删除失败");
        }
    }

    // 2.判断目录是否存在 存在则删除
    @Test
    public void delFolder() {
        File file = new File("d:\\FolderXXL");
        if(file.exists()) {
            file.delete();
            System.out.println("文件夹删除成功");
        } else {
            System.out.println("文件夹删除失败");
        }

    }

    // 3. 判断目录 d:\\a\\b\\c 是否存在 不存在则创建
    @Test
    public void makedir() {
        File file = new File("d:\\a\\b\\c");
        if(file.exists()) {
            System.out.println("文件夹已存在");
        } else {
            // 创建一级目录 使用mkdir, 创建多级使用 mkdirs
            if(file.mkdirs()) {
                System.out.println("创建文件夹");
            } else {
                System.out.println("创建文件夹失败");
            }
        }

    }
}
